This course introduces the version control system Git, an essential tool for tracking and managing software development. Working with Git provides the flexibility to freely make changes to your code and the security to know you can always get back to a working state. You will learn to track the changes you made to your code and when you made them, both using the command line and graphical tools.
Beyond working on your own code, understanding Git allows usage of online code repositories such as GitHub. Using an online repository to publish your code is a great way to disseminate your research and a necessary step to collaborate with others. This course will demonstrate how to publish code to GitHub and introduce some of its basic features and functionality, while the Intermediate course introduces more features that make it a productive collaborative environment.
This course (particularly the first half) is closely based on this Code Refinery lesson.
Syllabus
- An introduction to Git concepts and terminology.
- Using Git to track and visualise changes in your code.
- How to prepare your code for publication.
- Publishing your code using GitHub.
- Using GitHub Issues to manage your ToDo list in relation to the software.
- Using graphical user interfaces (GUIs) to Git
Learning outcomes
After completing this workshop, you will be better able to
- Use the version control software Git to record and track changes to a code base
- Publish your code to a public repository
- Maintain your code repository up to date and in sync with your local copy
- Manage project action items with GitHub Issues
- Use a graphical user interface to Git
- Understand how and where to access support from the Research Computing Service at Imperial College
Delivery of the course
Material will be delivered as a lecture with tasks for you to complete, following the Carpentries teaching style.
- The instructor will walk you through the theoretical material of the course, demonstrating the execution of the relevant code and instructions. You are highly encouraged to code along and execute the instructions at the same time.
- Throughout the lessons, there are yellow boxes highlighting particularly challenging or important concepts.
- There are also exercises in orange boxes. The instructor will give you time to try to do them yourself before going through the solution. This is often available in a folded part of the orange box, so you can check it at any time.
- When doing exercises, put a green sticker in your computer whenever you are done, or a pink/orange one if you need support. A helper will go to you.
- For online sessions, raise your hand if you are done with the exercise and write any questions or problems directly into the chat, so a helper can try to solve it.
Prerequisites
Any introductory (graduate school) level programming course